From: Alex Williamson Date: Tue, 11 Sep 2007 21:09:33 +0000 (-0600) Subject: [IA64] Make Big-Endian appliation run on top of dom0 and domU X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14972 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=f8335563f17f7849df7ceefa45a0e2d656934a99;p=xen.git [IA64] Make Big-Endian appliation run on top of dom0 and domU Signed-off-by: Anthony Xu --- diff --git a/xen/arch/ia64/xen/faults.c b/xen/arch/ia64/xen/faults.c index 296f50326e..f201d3fe56 100644 --- a/xen/arch/ia64/xen/faults.c +++ b/xen/arch/ia64/xen/faults.c @@ -94,7 +94,9 @@ static void reflect_interruption(unsigned long isr, struct pt_regs *regs, regs->cr_ipsr = vcpu_pl_adjust(regs->cr_ipsr, IA64_PSR_CPL0_BIT); if (PSCB(v, dcr) & IA64_DCR_BE) regs->cr_ipsr |= IA64_PSR_BE; - + else + regs->cr_ipsr &= ~IA64_PSR_BE; + if (PSCB(v, hpsr_dfh)) regs->cr_ipsr |= IA64_PSR_DFH; PSCB(v, vpsr_dfh) = 0; @@ -140,6 +142,9 @@ void reflect_event(void) regs->cr_ipsr = vcpu_pl_adjust(regs->cr_ipsr, IA64_PSR_CPL0_BIT); if (PSCB(v, dcr) & IA64_DCR_BE) regs->cr_ipsr |= IA64_PSR_BE; + else + regs->cr_ipsr &= ~IA64_PSR_BE; + if (PSCB(v, hpsr_dfh)) regs->cr_ipsr |= IA64_PSR_DFH; @@ -241,6 +246,9 @@ void ia64_do_page_fault(unsigned long address, unsigned long isr, IA64_PSR_CPL0_BIT); if (PSCB(current, dcr) & IA64_DCR_BE) regs->cr_ipsr |= IA64_PSR_BE; + else + regs->cr_ipsr &= ~IA64_PSR_BE; + if (PSCB(current, hpsr_dfh)) regs->cr_ipsr |= IA64_PSR_DFH;